#ifndef __SCENEOBJECTREMOVECMD_H__
#define __SCENEOBJECTREMOVECMD_H__

#include <stl/list.h>
#include "command.h"
#include "scene/sceneobjectbase.h"

struct SSceneObjectRemoveInfo{
    uint32 m_nID;
    char m_strName[32];
    char m_strFileName[32];
    float m_fInitScale;
    float m_fHelperRadius;
    int32 m_nCellType;
    int32 m_nRotationType;

    ESceneObjectType m_eSceneObjectType;
    TV3 m_sPos;
    TV3 m_sRot;
    TV3 m_sScale;
    TPosition m_sMapPos;
    char* m_strExtData;
};

class CSceneObjectRemoveCMD: public CCommand{
public:
    CSceneObjectRemoveCMD( list<uint32> *pvRemoveInfoList );
    virtual ~CSceneObjectRemoveCMD();
    virtual void Init();
	virtual void Final();
	virtual bool32 Undo();
	virtual bool32 Redo();

private:
    list<SSceneObjectRemoveInfo> m_vRemoveInfoList;
};

#endif
